package com.itita.ww2.enums;

public enum WW2ExceptionCode {
	/*
	 *  Common Code
	 */
	UNKNOWN_ERROR(100), // 未知错误
	SERVER_ERROR, // 服务器错误
	SQLEXCEPTION, // SQL错误
	INVALID_OPT, // 非法操作
	NICKNAME_EXISTS, // 该昵称已存在
	FAILURE, // 失败
	REQUEST_ALREADY_DISPOSE, // 请求已经处理
	REQUEST_SEND_FAILURE, // 请求发送失败
	REQUEST_TIMEOUT, // 请求超时
	REQUEST_ALREADY_SEND, // 请求已发出过
	NOT_FOUND, // 未找到
	GAME_ACC_HAS_BEEN_BOUND, // 帐号已经绑定过
	CHANNEL_ACC_HAS_BEEN_BOUND, // 渠道帐号已经绑定过游戏帐号
	CHANNEL_VALIED_FAILURE, // 渠道验证失败
	DUPLICATE_OPT, // 重复操作
	LEVEL_LIMIT, // 等级受限
	/*
	 * User
	 */
	USER_RES_NOT_ENOUGH, // 用户资源不足
	USER_LEVEL_NOT_ENOUGH, // 用户等级不足
	USER_NO_PERMISSION, // 权限不足
	USER_FATIGUE_NOT_ENOUGH, // 用户疲劳不足
	USER_ITEM_NOT_ENOUGH, // 玩家物品不足
	USER_ARMY_ERROR, // 一般都是兵找不到或没解锁

	/*
	 *  Alliance
	 */
	ALLIANCE_ALREADY_EXIST(200), // 联盟 已经存在
	ALLIANCE_NOT_EXISTS, // 联盟不存在
	ALLIANCE_ALREADY_JOIN, // 已经加入过联盟
	ALLIANCE_JOIN_COOLDOWN, // 刚退出联盟,加入冷却中
	ALLIANCE_IS_FULL, // 联盟已满
	ALLIANCE_CLOSED, // 拒绝加入
	ALLIANCE_QUIT_IS_LEADER, // 盟主不能退出
	ALLIANCE_HAS_NOT_JOIN, // 未加入联盟
	ALLIANCE_NAME_ILLEAGUE, // 联盟名称非法
	ALLIANCE_NO_PERMISSION, // 没有权限
	ALLIANCE_OFFICIAL_FULL, // 职位已满,不能再任命
	ALLIANCE_NOT_DISBAND_STATUS, // 不是解散状态
	ALLIANCE_DISBANDING_STATUS, // 当前联盟正处于解散状态
	ALLIANCE_WM_WAR_STATUS, // 当前联盟处于大地图战斗状态
	ALLIANCE_NOT_TRANSFER, // 当前联盟没有处于转让状态
	ALLIANCE_TRANSFERING, // 当前联盟正处于转让状态
	ALLIANCE_TRANSFER_TIME_NOT_PERIOD, // 被转让者时间条件不成熟

	/*
	 * WorldMap
	 */
	WORLDMAP_BASE_NOT_FOUND(400), // 据点不存在(这时候是数据错误)
	WORLDMAP_BASE_UNDER_ATTACK, // 据点正在被攻击
	//	WORLDMAP_BASE_HAS_BEEN_OCCUPIED, // 据点已经被占领
	//	WORLDMAP_BASE_LEVEL_HIGHEST, // 据点已经满级,不能再升
	//	WORLDMAP_BASE_ENHANCE_HIGHEST, // 据点无法再次强化(满级)
	WORLDMAP_BASE_COOLDOWN, // 据点冷却中
	// WORLDMAP_CITY_LEVEL_ERROR, // 城市等级不对应
	WORLDMAP_CITY_DECLAR_NO_NEED, // 无需宣战
	WORLDMAP_CITY_HAS_BEEN_DECLARED, // 已经被宣战
	//	WORLDMAP_CITY_HAS_NOT_DECLARED, // 未被宣战
	WORLDMAP_CITY_COOLDOWN, // 城池冷却中
	WORLDMAP_CITY_NOT_BATTLE_TIME, // 非战斗时间
	//	WORLDMAP_BLOCK_HAS_BEEN_UNLOCKED, // 区块已经解锁过了
	//	WORLDMAP_BLOCK_HAS_NOT_UNLOCKED, // 区块没有解锁
	WORLDMAP_ALLIANCE_NO_DECLAR_TIMES, // 没有宣战次数了

	BUY_LIMIT(500), // 可购买量不足
	;

	private int value;

	private WW2ExceptionCode() {
		this(Counter.nextValue);
	}

	private WW2ExceptionCode(int value) {
		this.value = value++;
		Counter.nextValue = value;
	}

	public int getValue() {
		return value;
	}

	private static class Counter {
		private static int nextValue = 0;
	}
}
